package Metier;

import java.io.File;
import java.io.FileOutputStream;
import java.util.ArrayList;
import java.util.Iterator;

import org.jdom.Attribute;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.ProcessingInstruction;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

import Controle.Controleur;

/**
 * Classe de gestion des sommaires
 * @author Aubry Thomas
 * @author Bouchet Sylvain
 * @author Fauvel Alexis
 * @author Lessieur Jocelyn
 * @author Mathias Bastien 
 * @author Teuf Antoine
 * @version 1.0
 */
public class Sommaire extends Element {
	
	/**
	 * Le document contenant le sommaires
	 */
	private Document document;
	
	/**
	 * Constructeur de la classe sommaire
	 * @param racine	chemin du fichier de sauvegarde des projets
	 * @param projet	projet dont l'on veut generer le sommaire
	 */
	public Sommaire(String racine, Projet projet){
		super("Sommaire");
		document = new Document();
		ArrayList<Page> alPage = projet.getPages();
		
		ProcessingInstruction xsl =  new ProcessingInstruction("xml-stylesheet",
				"type='text/xsl' href='sommaire.xsl'");
		
		document.addContent(xsl);
		document.addContent(this);
		
		Element titre = new Element("titre");
		titre.setText(projet.getNom());
		
		Element auteur = new Element("auteur");
		auteur.setText(projet.getAuteur());
		
		addContent(auteur);
		addContent(titre);

		

		Iterator<Page> it = alPage.iterator();
		Page p;
		Element el;
		while(it.hasNext()){
			p = it.next();
			el = new Element("page");
			el.setAttribute(new Attribute("nomFichier",p.getNomFichier()));
			el.setText(p.getTitrePage());
			addContent(el);
		}
	
		Format fo = Format.getRawFormat();
		fo.setIndent("\t");
		File f = new File(racine + projet.getNom(), "index.xml");

		try {
			XMLOutputter sortie = new XMLOutputter(fo);
			sortie.output(document, new FileOutputStream(f));
		} catch (java.io.IOException e) {
			System.out.println(e);
		}
	}
}
